/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package easy.bean;

import easy.hbm.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;


/**
 *
 * @author Julio
 */
public class CadastroClienteBean implements Serializable{
    private static final long serialVersionUID = -5241309335584165935L;
private PessoaFisica pessoaFisica;
private PessoaJuridica pessoaJuridica;
private Endereco endereco;
private Telefone telefoneSelecionado;
private Telefone telefone = new Telefone();
private Email email;
private Site site;
private Contato contato;

private List<Telefone> listTel;
private List<Endereco> listEndereco;
private List<PessoaFisica> listPF;
private List <PessoaJuridica> listPJ;
private List <Email> listEmail;
private List <Email> listEmailContato;
private List <Telefone> listTelContato;
private List<Site> listSite;
private List<Contato> listContato;
private String codigoalternativo;
private String renderedTipoPessoa;
private boolean renderedPessoaFisica;
private boolean renderedPessoaJuridica;
private boolean renderedListaEndereco;
private boolean renderedListaTelefone;
private boolean renderedListaEmail;
private boolean renderedListaSite;
private boolean renderedListaEmailContato;
private boolean renderedListaTelefoneContato;
private int codigoAlternativo;



public CadastroClienteBean(){
    renderedTipoPessoa = "1";
    renderedListaEndereco=false;
    renderedListaTelefone=false;
    renderedListaEmail=false;
    renderedListaSite=false;
    renderedListaTelefoneContato=false;
    listTel = new ArrayList<Telefone>();
    listEndereco = new ArrayList<Endereco>();
    listPF = new ArrayList<PessoaFisica>();
    listPJ = new ArrayList<PessoaJuridica>();
    listEmail = new ArrayList<Email>();
    listSite = new ArrayList<Site>();
    listContato = new ArrayList<Contato>();
    listEmailContato = new ArrayList<Email>();
    listTelContato = new ArrayList<Telefone>();
    endereco = new Endereco();
    telefone = new Telefone();
    email = new Email();
    site = new Site();
    contato = new Contato();
    telefoneSelecionado = new Telefone();
    pessoaFisica = new PessoaFisica();
    pessoaJuridica = new PessoaJuridica();
    renderedPessoaFisica=true;
    renderedPessoaJuridica=false;
}

public void controlaTipoPessoa(){
    System.out.println("Entrouu");
    
       if( getRenderedTipoPessoa().equals("2")){
            setRenderedPessoaFisica(false);
            setRenderedPessoaJuridica(true);
    }else if (getRenderedTipoPessoa().equals("1")){
            setRenderedPessoaFisica(true);
            setRenderedPessoaJuridica(false);
    }

}


public void editarEndereco(){
        /*  if(endereco.getCep()!= null && endereco.getLogradouro()!=null && endereco.getNumero()!=null &&
            endereco.getComplemento()!=null && endereco.getBairro()!=null && endereco.getCidade()!=null
            && endereco.getEstado()!=null && endereco.getPais()!=null){
       
    }*/
}
public void excluirEndereco(){
     for (int x=0;x<listEndereco.size();x++) {
        Endereco end = listEndereco.get(x);
        if(end !=null && end.equals(getEndereco())){
            listEndereco.remove(x);
        }
    }

     listEndereco.remove(endereco);
}
public void adicionarEndereco(){
    renderedListaEndereco=true;
   
    listEndereco.add(endereco);
    endereco = new Endereco();

}

public void editarTelefone(){

}
public void excluirTelefone(){
   
    for (int x=0;x<listTel.size();x++) {
        Telefone tel = listTel.get(x);
        if(tel !=null && tel.equals(getTelefone())){
            listTel.remove(x);
        }
    }

}
public void adicionarTelefone(){
    System.out.println("Entrou na ADICIONAR TELEFONEEEE");
        setRenderedListaTelefoneContato(true);
    listTel.add(telefone);
    telefone = new Telefone();

}

public void editarTelefoneContato(){

}
public void excluirTelefoneContato(){
    System.out.println("Entrou na excluir Telefone");
    for (int x=0;x<listTel.size();x++) {
        Telefone tel = listTel.get(x);
        if(tel !=null && tel.equals(getTelefone())){
            listTel.remove(x);
        }
    }

}
public void adicionarTelefoneContato(){
    System.out.println("Entrou na ADICIONAR TELEFONEEEE");
        setRenderedListaTelefoneContato(true);
    listTelContato.add(telefone);
    telefone = new Telefone();

}

public void editarEmail(){

}
public void excluirEmail(){
    listEmail.remove(email);
}
public void adicionarEmail(){
   System.out.println("Entrou em adicionar email");
    renderedListaEmail=true;
    listEmail.add(email);
    email = new Email();
}
public void editarSite(){

}
public void excluirSite(){
    listSite.remove(site);
}
public void adicionarSite(){
    renderedListaSite=true;
    listSite.add(site);
    site = new Site();
}

public void editarContato(){

}
public void excluirContato(){
    listContato.remove(contato);
}
public void adicionarContato(){
    listContato.add(contato);
    contato = new Contato();
}


public void editarEmailContato(){

}
public void excluirEmailContato(){
    listEmailContato.remove(email);
}
public void adicionarEmailContato(){
  renderedListaEmailContato=true;
   listEmailContato.add(email);

    email = new Email();
}
    /**
     * @return the pessoaFisica
     */
    public PessoaFisica getPessoaFisica() {
        return pessoaFisica;
    }

    /**
     * @param pessoaFisica the pessoaFisica to set
     */
    public void setPessoaFisica(PessoaFisica pessoaFisica) {
        this.pessoaFisica = pessoaFisica;
    }

    /**
     * @return the pessoaJuridica
     */
    public PessoaJuridica getPessoaJuridica() {
        return pessoaJuridica;
    }

    /**
     * @param pessoaJuridica the pessoaJuridica to set
     */
    public void setPessoaJuridica(PessoaJuridica pessoaJuridica) {
        this.pessoaJuridica = pessoaJuridica;
    }

    /**
     * @return the endereco
     */
    public Endereco getEndereco() {
        return endereco;
    }

    /**
     * @param endereco the endereco to set
     */
    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }

    /**
     * @return the telefoneSelecionado
     */
    public Telefone getTelefoneSelecionado() {
        return telefoneSelecionado;
    }

    /**
     * @param telefoneSelecionado the telefoneSelecionado to set
     */
    public void setTelefoneSelecionado(Telefone telefoneSelecionado) {
        this.telefoneSelecionado = telefoneSelecionado;
    }

    /**
     * @return the telefone
     */
    public Telefone getTelefone() {
        return telefone;
    }

    /**
     * @param telefone the telefone to set
     */
    public void setTelefone(Telefone telefone) {
        this.telefone = telefone;
    }

    /**
     * @return the listTel
     */
    public List<Telefone> getListTel() {
        return listTel;
    }

    /**
     * @param listTel the listTel to set
     */
    public void setListTel(List<Telefone> listTel) {
        this.listTel = listTel;
    }

    /**
     * @return the listEndereco
     */
    public List<Endereco> getListEndereco() {
        return listEndereco;
    }

    /**
     * @param listEndereco the listEndereco to set
     */
    public void setListEndereco(List<Endereco> listEndereco) {
        this.listEndereco = listEndereco;
    }

    /**
     * @return the listPF
     */
    public List<PessoaFisica> getListPF() {
        return listPF;
    }

    /**
     * @param listPF the listPF to set
     */
    public void setListPF(List<PessoaFisica> listPF) {
        this.listPF = listPF;
    }

    /**
     * @return the listPJ
     */
    public List<PessoaJuridica> getListPJ() {
        return listPJ;
    }

    /**
     * @param listPJ the listPJ to set
     */
    public void setListPJ(List<PessoaJuridica> listPJ) {
        this.listPJ = listPJ;
    }

    /**
     * @return the listEmail
     */
    public List<Email> getListEmail() {
        return listEmail;
    }

    /**
     * @param listEmail the listEmail to set
     */
    public void setListEmail(List<Email> listEmail) {
        this.listEmail = listEmail;
    }

    /**
     * @return the listSite
     */
    public List<Site> getListSite() {
        return listSite;
    }

    /**
     * @param listSite the listSite to set
     */
    public void setListSite(List<Site> listSite) {
        this.listSite = listSite;
    }

    /**
     * @return the codigoalternativo
     */
    public String getCodigoalternativo() {
        return codigoalternativo;
    }

    /**
     * @param codigoalternativo the codigoalternativo to set
     */
    public void setCodigoalternativo(String codigoalternativo) {
        this.codigoalternativo = codigoalternativo;
    }

    /**
     * @return the renderedTipoPessoa
     */
    public String getRenderedTipoPessoa() {
        return renderedTipoPessoa;
    }

    /**
     * @param renderedTipoPessoa the renderedTipoPessoa to set
     */
    public void setRenderedTipoPessoa(String renderedTipoPessoa) {
        this.renderedTipoPessoa = renderedTipoPessoa;
    }

    /**
     * @return the renderedPessoaFisica
     */
    public boolean isRenderedPessoaFisica() {
        return renderedPessoaFisica;
    }

    /**
     * @param renderedPessoaFisica the renderedPessoaFisica to set
     */
    public void setRenderedPessoaFisica(boolean renderedPessoaFisica) {
        this.renderedPessoaFisica = renderedPessoaFisica;
    }

    /**
     * @return the renderedPessoaJuridica
     */
    public boolean isRenderedPessoaJuridica() {
        return renderedPessoaJuridica;
    }

    /**
     * @param renderedPessoaJuridica the renderedPessoaJuridica to set
     */
    public void setRenderedPessoaJuridica(boolean renderedPessoaJuridica) {
        this.renderedPessoaJuridica = renderedPessoaJuridica;
    }

    /**
     * @return the codigoAlternativo
     */
    public int getCodigoAlternativo() {
        return codigoAlternativo;
    }

    /**
     * @param codigoAlternativo the codigoAlternativo to set
     */
    public void setCodigoAlternativo(int codigoAlternativo) {
        this.codigoAlternativo = codigoAlternativo;
    }

    /**
     * @return the email
     */
    public Email getEmail() {
        return email;
    }

    /**
     * @param email the email to set
     */
    public void setEmail(Email email) {
        this.email = email;
    }

    /**
     * @return the site
     */
    public Site getSite() {
        return site;
    }

    /**
     * @param site the site to set
     */
    public void setSite(Site site) {
        this.site = site;
    }

    /**
     * @return the contato
     */
    public Contato getContato() {
        return contato;
    }

    /**
     * @param contato the contato to set
     */
    public void setContato(Contato contato) {
        this.contato = contato;
    }

    /**
     * @return the listContato
     */
    public List<Contato> getListContato() {
        return listContato;
    }

    /**
     * @param listContato the listContato to set
     */
    public void setListContato(List<Contato> listContato) {
        this.listContato = listContato;
    }

    /**
     * @return the listEmailContato
     */
    public List<Email> getListEmailContato() {
        return listEmailContato;
    }

    /**
     * @param listEmailContato the listEmailContato to set
     */
    public void setListEmailContato(List<Email> listEmailContato) {
        this.listEmailContato = listEmailContato;
    }

    /**
     * @return the renderedListaEndereco
     */
    public boolean isRenderedListaEndereco() {
        return renderedListaEndereco;
    }

    /**
     * @param renderedListaEndereco the renderedListaEndereco to set
     */
    public void setRenderedListaEndereco(boolean renderedListaEndereco) {
        this.renderedListaEndereco = renderedListaEndereco;
    }

    /**
     * @return the renderedListaTelefone
     */
    public boolean isRenderedListaTelefone() {
        return renderedListaTelefone;
    }

    /**
     * @param renderedListaTelefone the renderedListaTelefone to set
     */
    public void setRenderedListaTelefone(boolean renderedListaTelefone) {
        this.renderedListaTelefone = renderedListaTelefone;
    }

    /**
     * @return the renderedListaEmail
     */
    public boolean isRenderedListaEmail() {
        return renderedListaEmail;
    }

    /**
     * @param renderedListaEmail the renderedListaEmail to set
     */
    public void setRenderedListaEmail(boolean renderedListaEmail) {
        this.renderedListaEmail = renderedListaEmail;
    }

    /**
     * @return the renderedListaSite
     */
    public boolean isRenderedListaSite() {
        return renderedListaSite;
    }

    /**
     * @param renderedListaSite the renderedListaSite to set
     */
    public void setRenderedListaSite(boolean renderedListaSite) {
        this.renderedListaSite = renderedListaSite;
    }

    /**
     * @return the renderedListaEmailContato
     */
    public boolean isRenderedListaEmailContato() {
        return renderedListaEmailContato;
    }

    /**
     * @param renderedListaEmailContato the renderedListaEmailContato to set
     */
    public void setRenderedListaEmailContato(boolean renderedListaEmailContato) {
        this.renderedListaEmailContato = renderedListaEmailContato;
    }

    /**
     * @return the renderedListaTelefoneContato
     */
    public boolean isRenderedListaTelefoneContato() {
        return renderedListaTelefoneContato;
    }

    /**
     * @param renderedListaTelefoneContato the renderedListaTelefoneContato to set
     */
    public void setRenderedListaTelefoneContato(boolean renderedListaTelefoneContato) {
        this.renderedListaTelefoneContato = renderedListaTelefoneContato;
    }

    /**
     * @return the listTelContato
     */
    public List<Telefone> getListTelContato() {
        return listTelContato;
    }

    /**
     * @param listTelContato the listTelContato to set
     */
    public void setListTelContato(List<Telefone> listTelContato) {
        this.listTelContato = listTelContato;
    }

 

}
